package RecursiveSearcher;

/**
 * @ClassName LC206
 * @Description 力扣 206 翻转链表
 * @Author ZJX
 * @Date 2024/9/11 19:55
 * @Version 1.0
 */

// 将链表看成一棵树 逆序链表就是 将 树 后序遍历

public class LC206 {
    public ListNode reverseList(ListNode head) {
        if (head == null || head.next == null) {
            // 当链表为空或只有一个节点时，直接返回
            return head;
        }

        ListNode restReversed = reverseList(head.next);  // 递归反转剩余部分
        head.next.next = head;                          // 修改当前节点的下一个节点的next指针
        head.next = null;                               // 断开与原链表的连接

        // 返回新的头结点
        return restReversed;
    }
}
